/********************************************************************
	Copyright (C) 2006-2008 Lensow
	http://www.lensow.com
	Created:	2008/06/10   23:47
	Filename: 	OpenMediaData.h
	Author:		Dean
	
	Purpose:	
*********************************************************************/
#pragma once
interface IDvdState;

class COpenMediaData
{
public:
	enum MediaType {
		PM_NONE, 
		PM_FILE, 
		PM_DVD, 
		PM_CAPTURE,
	};
	virtual ~COpenMediaData(void){}
	virtual MediaType GetType () const {return PM_NONE;}

	CString title;
	CStringList subs;
};

class COpenFileData : public COpenMediaData 
{
public:
	COpenFileData() : rtStart(0) {}
	virtual MediaType GetType () const {return PM_FILE;}

	CStringList fns; 
	LONGLONG rtStart;
};

class COpenDVDData : public COpenMediaData 
{
public: 
	virtual MediaType GetType () const {return PM_DVD;}
	CString path; 
	CComPtr<IDvdState> pDvdState;
};

class COpenDeviceData : public COpenMediaData
{
public: 
	COpenDeviceData() {vinput = vchannel = ainput = -1;}
	virtual MediaType GetType () const {return PM_CAPTURE;}
	CString DisplayName[2];
	int vinput, vchannel, ainput;
};